257. istio-proxy Readiness probe failed

WHY

最近同事在壓測服務,
然後發現他的pod常常無故重啟,
不是restart,而是整個pod重建。

Solution

2024/12/13更新

找的方向錯誤,目前是這個NodePool只要掛上Taint後,
壓測時,就會導致Istio-proxy的readines 每小時重開一次。

看event事件,發現這個錯誤。
看來是istio-proxy本身的Readiness導致。

257-fig.1.png

然後檢查istio-proxy本身的resource 也有設定limit。

先改個limit設定試試。

spec:
  replicas: 1
  selector:
    matchLabels:
      app: gameservice
      group: gameservice
  template:
    metadata:
      annotations:
        sidecar.istio.io/proxyCPU: 200m
        sidecar.istio.io/proxyCPULimit: 2000m
        sidecar.istio.io/proxyMemory: 128Mi
        sidecar.istio.io/proxyMemoryLimit: 2Gi
    spec:
      containers: 
        .... 

這個可以指定單個pod使用此設定,
如果要設成全域,參考setting-global-resource-requests-for-sidecar-proxy

但是,這情況仍然會發生。
猜測可能是壓策時,大量的請求塞到istio-proxy裡面導致無法負荷。
另一種是直接 停用readiness了 。
下面的方法,是改寫不是停用,
目前還沒找到停用的方法。

spec:
  replicas: 1
  selector:
    matchLabels:
      app: gameservice
      group: gameservice
  template:
    metadata:
      annotations:
		sidecar.istio.io/rewriteAppHTTPProbers: "false"
    spec:
      containers: 
        .... 

ref.